// 云函数入口文件
const cloud = require("wx-server-sdk");
// 引入tcb-router
const TcbRouter = require("tcb-router");

cloud.init();

// 云函数入口函数
exports.main = async (event, context) => {    // envent:云函数数据
  const wxContext = cloud.getWXContext();

  // 生成路由实例
  const app = new TcbRouter({ event });

  // 类似于koa的中间件
  app.router("login", (ctx, next) => {
    // ctx的body中数据，最终会作为这个云函数的返回值
    ctx.body = {
      event,
      openid: wxContext.OPENID,
      appid: wxContext.APPID,
      unionid: wxContext.UNIONID,
    };
  });

  // 设置用户喂养信息
  app.router("setFeedInfo", async(ctx, next) => {
    // 先获取数据库
    const db = cloud.database();      // 云数据库实例
    // 再获取集合
    const feedInfo = db.collection("user-feed-info");
    // 根据id获取数据
    // const data = await feedInfo.doc("617ef50c620f822306bde5133aa5ccf2").get();

    const {openid,userAdoptId,feedTime,nextTime} = event

    // 查询看用户的喂养数据 是否在数据库中存在
    const {data} = await feedInfo.where({
      openid,userAdoptId
    }).get()
    console.log(data);

    // 如果发现数据是存在的，我们就更新原数据的feedTime 和 nextTime
    if(data[0]){
      const res = await feedInfo.doc(data[0]._id).update({
        data:{
          feedTime, nextTime
        }
      })
      ctx.body = res
      console.log(res);
    }else{
      // 如果数据不存在，就新建一条数据
      const res = await feedInfo.add({
        data:{
          openid,userAdoptId,feedTime,nextTime
        }
      })
      ctx.body = res
      console.log(res);
    }
  });

  // 查找用户喂养信息
  app.router("getFeedInfo",async(ctx,next)=>{
    const db = cloud.database()
    const feedInfo = db.collection("user-feed-info")
    const {openid,userAdoptId} = event

    const {data} = await feedInfo.where({
      openid,userAdoptId
    }).get()

    ctx.body = data
  })

  app.router('getSteps',async(ctx,next) =>{
    console.log(event);
    ctx.body = event.steps.data.stepInfoList
  })
  return app.serve();
};
